package com.ruoyi.exam.service;

import java.util.List;
import com.ruoyi.exam.domain.TQuestion;
import com.ruoyi.exam.domain.vo.QuestionVo;

/**
 * 题库Service接口
 *
 * @author Bandit
 * @date 2022-11-01
 */
public interface ITQuestionService
{
    /**
     * 查询题库
     *
     * @param id 题库主键
     * @return 题库
     */
    public QuestionVo selectTQuestionById(Long id);

    /**
     * 查询题库列表
     *
     * @param tQuestion 题库
     * @return 题库集合
     */
    public List<TQuestion> selectTQuestionList(TQuestion tQuestion);

    /**
     * 查询题库列表
     *
     * @param tQuestion 题库
     * @return 题库集合
     */
    public List<QuestionVo> selectQuestionVoList(QuestionVo questionVo);


    /**
     * 选择ID不在IDS数组里的问题列表
     * @param chosenIds
     * @return
     */
    List<QuestionVo> selectUnChosenQuestionVoList(Long[] chosenIds);

    /**
     * 新增题库
     *
     * @param tQuestion 题库
     * @return 结果
     */
    public int insertTQuestion(TQuestion tQuestion);

    /**
     * 手动录入题库, 存入content后再存入题库
     * @param questionVo 题库vo
     * @return 插入后content的id
     */
    public int insertQuestionVo(QuestionVo questionVo);

    /**
     * 修改题库
     *
     * @param tQuestion 题库
     * @return 结果
     */
    public int updateTQuestion(TQuestion tQuestion);

    /**
     * 更新题库信息
     * @param tQuestion
     * @return
     */
    public int updateQuestionVo(QuestionVo tQuestion);

    /**
     * 批量删除题库
     *
     * @param ids 需要删除的题库主键集合
     * @return 结果
     */
    public int deleteTQuestionByIds(Long[] ids);

    /**
     * 删除题库信息
     *
     * @param id 题库主键
     * @return 结果
     */
    public int deleteTQuestionById(Long id);
}
